<?php
include_once 'bean.php';
include_once 'truncador.php';

class Musica extends Bean {
    
	protected $id, $titulo, $letra, $tom_padrao, $observacoes, $tags, $links, $de_quem_eh, $quem_mexeu, $quando_mexeu;
	
	public function Musica() {
		$this->tags = array();
		$this->links = array();
	}

	public static function lista_tons() {
		return array("", "A", "Am", "A#", "A#m",
							"B", "Bm",
							"C", "Cm", "C#", "C#m",
							"D", "Dm", "D#", "D#m",
							"E", "Em", 
							"F", "Fm", "F#", "F#m",
							"G", "Gm", "G#", "G#m");
	}
	
	public function get_id() {
		return $this->id;
	}
	
	public function get_titulo() {
		return $this->titulo;
	}
	
	public function get_letra() {
		return $this->letra;
	}
	
	public function get_tom_padrao() {
		return $this->tom_padrao;
	}
	
	public function get_observacoes() {
		return $this->observacoes;
	}
	
	public function get_de_quem_eh() {
		return $this->de_quem_eh;
	}
	
	public function get_links() {
		usort($this->links, array("Link", "comparar"));
		return $this->links;
	}
	
	public function get_tags() {
		usort($this->tags, array("Tag", "comparar"));
		return $this->tags;
	}
	
	public function set_id($id) {
		$this->id = $id;
	}
	
	function set_titulo($titulo) {
		$this->titulo = $titulo;
	}
	
	function set_letra($letra) {
		$this->letra = $letra;
	}
	
	function set_tom_padrao($tom_padrao) {
		$this->tom_padrao = $tom_padrao;
	}
	
	function set_observacoes($observacoes) {
		$this->observacoes = $observacoes;
	}
	
	function set_de_quem_eh($de_quem_eh) {
		$this->de_quem_eh = $de_quem_eh;
	}
	
	public function get_quem_mexeu() {
		return $this->quem_mexeu;
	}
	public function set_quem_mexeu($quem_mexeu) {
		$this->quem_mexeu = $quem_mexeu;
	}
	
	public function get_quando_mexeu() {
		return date("d/m/Y \à\s H:i:s", $this->quando_mexeu);
	}
	
	function get_letra_br() {
		return nl2br($this->letra);
	}
	
	public function get_letra_br_truncada($tamanho, $busca = "") {
		return nl2br(Truncador::truncar_ao_redor($this->letra, $tamanho, $busca));
	}
	
	public function get_observacoes_br_truncado($tamanho, $busca = "") {
		return nl2br(Truncador::truncar_ao_redor($this->observacoes, $tamanho, $busca));
	}
	
}
	
?>